package com.hand.hap.demo.service;

import com.hand.hap.code.rule.exception.CodeRuleException;
import com.hand.hap.core.IRequest;
import com.hand.hap.core.ProxySelf;
import com.hand.hap.demo.dto.OmOrderHeaders;
import com.hand.hap.system.service.IBaseService;

import java.util.List;

/**
 * 订单头service
 * @author shuai.wang02@hand-china.com
 * @date  2018/8/25 19:51
 */
public interface IOmOrderHeadersService extends IBaseService<OmOrderHeaders>, ProxySelf<IOmOrderHeadersService> {

    /**
     * 根据传参查询订单头数据 并返回到订单头grid中显示
     *
     * @param requestContext 请求参数
     * @param dto            查询参数
     * @param page           页数
     * @param pageSize       步长
     * @return OmOrderHeaders列表
     */
    List<OmOrderHeaders> selectOrderHeaders(IRequest requestContext, OmOrderHeaders dto, int page, int pageSize);

    /**
     * 根据form中的条件查询头
     *
     * @param dto 查询参数
     * @return OmOrderHeaders列表
     */
    List<OmOrderHeaders> selectOrderHeadersByTerms(OmOrderHeaders dto);

    /**
     * 根据form中的条件查询头
     *
     * @param dto 查询参数
     * @param requestContext 请求参数
     * @param page 页数
     * @param pageSize 页长
     * @return OmOrderHeaders列表
     */
    OmOrderHeaders queryByHeaderId(IRequest requestContext, OmOrderHeaders dto, int page, int pageSize);
    /**
     * 增加或更新头行
     *
     * @param requestCtx 请求参数
     * @param dto 头和行
     * @return OmOrderHeaders
     */

    List<OmOrderHeaders> submitHeaderAndLines(IRequest requestCtx, List<OmOrderHeaders> dto) throws CodeRuleException;

    /**
     * 导出EXCEL
     *
     * @param requestContext 请求参数
     * @param dto 头和行
     * @param page  分页
     * @param pageSize 页长
     * @return OmOrderHeaders
     */
    List<OmOrderHeaders> selectExcelData(IRequest requestContext, OmOrderHeaders dto,int page, int pageSize);
}